package com.niiwoo.civet.trade.dto.request.creditor;


import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;

@Getter
@Setter
@ToString
@NoArgsConstructor
public class CreditorSalePageRequestDTO implements Serializable {
    private static final long serialVersionUID = -1228449341576000141L;

    // 偏移量
    protected int offset;

    // 每页条数
    protected int pageSize = 20;

    //("排序条件(默认0)：0默认，1利率，2期限 ,3可投")
    private Integer sort = 0;

    //("排序类型（默认desc）：desc降序，asc升序")
    private String sortType = "desc";

    // 借款期限条件
    private PeriodCondition periodCondition;

    // 借款利率条件
    private RateCondition rateCondition;

    // 可投金额条件
    private InvestableType investableType;

    // 优惠方式(默认0)：0全部，1全价转让，2降价转让
    private Byte favorableType = Byte.valueOf("0");

    //("收益方式方式(默认0)：0全部，2等额本息，3按月还息，到期还本")
    private Byte repaymentType = Byte.valueOf("0");

    //("借款人类型(默认1)：0全部，1个人，2企业")
    private Byte borrowerType = Byte.valueOf("0");

   //("标的类型筛选(默认0)：0全部，1信用卡贷，2社保贷，3供应链贷，4房抵贷 5车抵贷 6 其他")
    private Integer productType = 0;

    @Getter
    @Setter
    @ToString
    // 借款期限条件
    public class PeriodCondition implements Serializable {
        private static final long serialVersionUID = 7923049690104774665L;
        // 期限起
        private Integer begin;

        // 期限起查询类型：1大于，2大于等于，3等于
        private Byte beginQueryType;

        // 期限止
        private Integer end;

        // 期限止查询类型：1小于，2小于等于，3等于
        private Byte endQueryType;

        // 期限单位：1月，2天
        private Byte unit;

    }

    @Getter
    @Setter
    @ToString
    // 借款利率条件
    public class RateCondition implements Serializable {
        private static final long serialVersionUID = 9208700494103420359L;
        // 利率起
        private BigDecimal begin;

        // 利率起查询类型：1大于，2大于等于，3等于
        private Byte beginQueryType;

        // 利率止
        private BigDecimal end;

        // 利率止查询类型：1小于，2小于等于，3等于
        private Byte endQueryType;

    }

    @Getter
    @Setter
    @ToString
    // 借款利率条件
    public class InvestableType implements Serializable {

        private static final long serialVersionUID = 1734403519151930750L;
        // 利率起
        private BigDecimal begin;

        // 利率起查询类型：1大于，2大于等于，3等于
        private Byte beginQueryType;

        // 利率止
        private BigDecimal end;

        // 利率止查询类型：1小于，2小于等于，3等于
        private Byte endQueryType;

    }


}
